function [] = exp_con_lectura_palabras(w, screenNumber, filename, tipo_experimento, intervalo_borrador, tipo_borrador , id_experimento)
try
    
   %%% OJO tipo_experimento es enrealidad tipo_material (letras etc)
    %Seteo las pantallas y busco alto y ancho de la misma
    [width, height]=Screen('WindowSize', screenNumber);
    
    
    
    % Fondos del texto para pintar negro o blanco segun el caso
    white = WhiteIndex(w);  
    black = BlackIndex(w);
   
    % Genero el Ruido
    image2D = 255 * rand(height, width);
    texturaRuido = Screen('MakeTexture', w, image2D);
    
    
    %Seteo las variables para escribir texto
    Screen('FillRect', w, white);
    Screen('TextFont', w, 'Courier New');
    Screen('TextSize', w, 50);
    Screen('TextStyle', w, 1+2);
    Screen('DrawText', w, '+', width/2, height/2, [0, 0, 0, 255]);
    
    vbl = Screen('Flip', w);
    col = -1;
    fila = -1;    
    
    
    A = textread('palabras.txt', '%19c');
    secuencias = textread('numeros.txt','%19c');
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
    
    
    %Variables de intervalos
    %intervalo_borrador = 3;
    intervalo_estimulo = 0.04;
    intervalo_blanco = 2;
    abc = ['A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'];
    %Abro archivo para guardar el resultado
    
    %
    
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    rand_palabra = floor(rand(1)*71+1);
    rand_palabra2 = floor(rand(1)*71+1);
    
    palabra_a_mostrar =  A(rand_palabra,1:7); 
    palabra_a_mostrar2 =  A(rand_palabra2,1:7);
    
    letra_critica =  A(rand_palabra,8:17); 
    letra_correcta = A(rand_palabra,19:19);
   
            primera_letra = abc(floor(rand(1)*26+1));
            segunda_letra = abc(floor(rand(1)*26+1));
            tercera_letra = abc(floor(rand(1)*26+1));
            cuarta_letra = abc(floor(rand(1)*26+1));    
    
    switch tipo_experimento
        case 'palabra_letra'
            primera_letra = palabra_a_mostrar(1);
            segunda_letra = palabra_a_mostrar(3);
            tercera_letra = palabra_a_mostrar(5);
            cuarta_letra = palabra_a_mostrar(7);
    end;
    letras_random = [ abc(floor(rand(1)*26+1)) ' ' abc(floor(rand(1)*26+1)) ' ' abc(floor(rand(1)*26+1)) ' ' abc(floor(rand(1)*26+1)) ];
    letras_random2 = [ primera_letra ' ' segunda_letra ' ' tercera_letra ' ' cuarta_letra ];
    
    [letra_critica,letra_correcta,col ]= generar_masking_random(primera_letra,segunda_letra,tercera_letra,cuarta_letra);
    
    
    primer_digito = int2str(floor(rand(1)*10));
    segundo_digito = int2str(floor(rand(1)*10));
    tercer_digito = int2str(floor(rand(1)*10));
    cuarto_digito = int2str(floor(rand(1)*10));
    
    
    
    

    %secuencia_2 = secuencias(floor(rand(1)*23+1),1:7);
    
    
     switch tipo_experimento
        case 'digitorandom_digitorandom'
               [letra_critica,letra_correcta,col ]= generar_masking_random_numeros(primer_digito,segundo_digito,tercer_digito,cuarto_digito);
        case 'secuencia_digitorandom'
              rand_palabra = floor(rand(1)*23+1);
              secuencia = secuencias(rand_palabra,1:7);
              [letra_critica,letra_correcta,col ]= generar_masking_random_numeros(secuencia(1),secuencia(3),secuencia(5),secuencia(7));
              %letra_critica =  secuencias(rand_palabra,9:17); 
              %letra_correcta = secuencias(rand_palabra,19:19);
        %case 'secuencia_secuencia'
        %      rand_palabra = floor(rand(1)*23+1);
        %      secuencia = secuencias(rand_palabra,1:7);
        %      letra_critica =  secuencias(rand_palabra,9:17); 
        %      letra_correcta = secuencias(rand_palabra,19:19);
    end;
    
    
    digito_random = [primer_digito ' ' segundo_digito ' ' tercer_digito ' ' cuarto_digito ];
    digito_random_2 = [ int2str(floor(rand(1)*10)) ' ' int2str(floor(rand(1)*10)) ' ' int2str(floor(rand(1)*10)) ' ' int2str(floor(rand(1)*10)) ];
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    

    
    
    
    %%%%%%%%Inicio del experimento%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    HideCursor;
    KbWait;
    
    
    rand_linea = rand(1);
    
     switch tipo_experimento
        %case 'palabra_palabra'
        %    show_question( palabra_a_mostrar2, palabra_a_mostrar, width, height, w, rand_linea )
        case 'palabra_letra'
            fila = show_question( letras_random, palabra_a_mostrar, width, height, w, rand_linea )
        case 'letra_letra'
            fila = show_question( letras_random, letras_random2, width, height, w, rand_linea )
        case 'digitorandom_digitorandom'
            fila = show_question( digito_random_2, digito_random, width, height, w, rand_linea )
        case 'secuencia_digitorandom'
            fila = show_question( digito_random, secuencia, width, height, w, rand_linea )
        %case 'secuencia_secuencia'
        %    show_question( secuencia_2, secuencia, width, height, w, rand_linea )
             
     end
    
    
    
    vbl = Screen('Flip', w, vbl);   %pantalla Con letras
    
    
    
    
    %Tipo de Borrador
    switch tipo_borrador
        case 'blanco'
            Screen('FillRect', w, white);
        case 'ruido'
            Screen('DrawTexture', w, texturaRuido);

    end
    
    % Screen('FillRect',w,black  );
    vbl = Screen('Flip', w, vbl + intervalo_estimulo); %Muestro pantalla de ruido 0.03 segundos despues de las letras durante 3 segundos
    %pantalla de pregunta
    %Screen('FillRect',w,white );
    
    vbl = Screen('Flip', w, vbl + intervalo_borrador);      %Muestro ruido durante 3 segundos
    
    %%%%%%%%%%%%%%%%%%%%%%%% aca hacemos la pregunta a la persona

    show_question( ' - - - -', letra_critica, width, height, w, rand_linea )
    
    %show_question( ' - - - -', letra_critica, width, height, w, rand_linea )
    
    vbl = Screen('Flip', w, vbl+ 0);      %Muestro ruido durante 3 segundos
    %KbWait;
    
    %[pressed, secs ] = GetChar;
    while 1
            % Check the state of the keyboard.
            [ keyIsDown, seconds, keyCode ] = KbCheck;

            % If the user is pressing a key, then display its code number and name.
            if keyIsDown

                % Note that we use find(keyCode) because keyCode is an array.
                % See 'help KbCheck'
                %fprintf('You pressed key %i which is %s\n', find(keyCode), KbName(keyCode));
                pressed = KbName(keyCode);

                break;
        
        end
    end
    

    
    res = 0;
    letra_presionada = upper((pressed));
    switch tipo_experimento
        case 'digitorandom_digitorandom'
              letra_presionada = pressed;
        case 'secuencia_digitorandom'
              letra_presionada = pressed;
        case 'secuencia_secuencia'
              letra_presionada = pressed;
    end;
    
    if letra_correcta == letra_presionada
        res = 1;
    end;
    
    
     switch tipo_experimento
        %case 'palabra_palabra'
        %    show_question( palabra_a_mostrar2, palabra_a_mostrar, width, height, w, rand_linea )
        case 'palabra_letra'
            l = [ palabra_a_mostrar,letras_random, letra_critica,rand_linea  ];
        case 'letra_letra'
            l = [ letras_random2 , letras_random , letra_critica,rand_linea];
        case 'digitorandom_digitorandom'
            l = [ digito_random , digito_random_2 , letra_critica,rand_linea];
        case 'secuencia_digitorandom'
            l = [ secuencia , digito_random, letra_critica,rand_linea ];
        %case 'secuencia_secuencia'
        %    show_question( secuencia_2, secuencia, width, height, w, rand_linea )
             
     end
     
   
    m = [ id_experimento res intervalo_borrador,fila,col];
    dlmwrite (filename, m, '-append');
    %csvwrite (strcat('palabra',filename), l, '-append');
    %clearall;
    %Screen('CloseAll');
catch
    % This "catch" section executes in case of an error in the "try" section
    % above.  Importantly, it closes the onscreen window if it's open.
    clearall
    Screen('CloseAll');
    psychrethrow(psychlasterror);
end
end
